package com.itheima.api.treemap.demo02;

import java.util.TreeMap;

/**
 * 需求：使用TreeMap集合存储元素，键是Student,值是String；
 * 要求：按照学生的年龄进行排序，如果年龄相同，比较姓名， 如果年龄和姓名都是相同，认为是同一个元素；
 */
public class TreeMapDemo01 {

    /**
     * 1. 定义学生类
     * 2. 创建3个学生对象
     * 3. 创建TreeMap集合对象
     * 4. 把学生对象存储到TreeMap集合对象中
     * 5. 遍历集合
     */
    public static void main(String[] args) {

        // 创建3个学生对象
        Student s1 = new Student("zhangsan" , 23) ;
        Student s2 = new Student("lisi" , 12) ;
        Student s3 = new Student("wangwu" , 30) ;
        Student s4 = new Student("ali" , 30) ;

        // 创建TreeMap集合对象
        /**
         * 我们在创建TreeMap集合对象的时候，使用的是无参构造方法，那么表示的意思就是我们需要使用自然排序，而我们之前说过，如果我们选定的是自然排序
         * 那么对我们的元素是要求，要求这个元素必须去实现Comparable接口
         */
        TreeMap<Student , String> treeMap = new TreeMap<Student , String>() ;

        // 把学生对象存储到TreeMap集合对象中
        treeMap.put(s1 , "北京") ;
        treeMap.put(s2 , "西安") ;
        treeMap.put(s3 , "上海") ;
        treeMap.put(s4 , "杭州") ;

        // 遍历集合
        treeMap.forEach( (key , value) -> {
            String name = key.getName();
            int age = key.getAge();
            System.out.println(name + "----" + age + "----" + value);
        });

    }

}
